package com.cyys.common.utils.list;

import com.cyys.common.model.BaseBean;

import java.lang.reflect.Method;
import java.util.HashMap;
import java.util.List;
import java.util.Map;

public class ListUtil2<K extends Object, V extends BaseBean> {
	
	@SuppressWarnings("unchecked")
	public Map<K, V> listToMapWithJava (List<V> mappeds,String method) throws Exception {
	    Map<K, V> map = new HashMap<K, V>();
	    for (V mapped : mappeds) {
	    	Class<? extends BaseBean> clazz = mapped.getClass();
	    	Method m = clazz.getDeclaredMethod(method);
	    	map.put((K) m.invoke(clazz), mapped);  
	    }
	    return map;
	}  

	public static void main(String[] args) {
//		ParamBasic p1 = new ParamBasic();
//		p1.setId(1);
//		p1.setName("111");
//
//		ParamBasic p2 = new ParamBasic();
//		p2.setId(2);
//		p2.setName("222");
//
//		List<ParamBasic> pl = new ArrayList<>();
//		pl.add(p1);
//		pl.add(p2);

//		Map<Integer, ParamBasic> map = (Map<Integer, ParamBasic>) ListUtil.listToMap(pl);
//		for (Integer in : map.keySet()) {
//			// map.keySet()返回的是所有key的值
//			ParamBasic str = map.get(in);// 得到每个key多对用value的值
//			System.out.println(str.getName());
//		}

	}
}
